package com.tanchengjin.admin.modules.blog.service;

import com.tanchengjin.admin.model.pojo.User;
import com.tanchengjin.admin.model.pojo.UserOauth;
import com.tanchengjin.admin.modules.blog.enumerations.OauthType;
import com.tanchengjin.admin.modules.blog.validations.MiniProgramAuthenticationValidate;
import com.tanchengjin.admin.modules.blog.vo.MiniProgramVO;

import java.util.List;

public interface UserService {
    /**
     * 通过用户名密码创建用户
     *
     * @param username 用户名
     * @param password 密码
     * @return
     */
    public User createUserByUsername(String username, String password);

    public User findOneById(Long id);

    public List<User> getAll();


    /**
     * 创建用户oauth关联信息
     *
     * @param id   用户id
     * @param code 唯一识别码
     * @param type oauth类型
     * @return 写入行数
     */
    public int createUserOauth(long id, String code, OauthType type);

    /**
     * 获取用户oauth信息
     *
     * @param code 唯一识别码
     */
    public UserOauth findOneByCode(String code);

    /**
     * 小程序用户认证登录
     * @param vo 参数
     */
    public MiniProgramVO miniProgramAuth(MiniProgramAuthenticationValidate vo);
}
